package com.honour.service.interfaced.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.honour.service.interfaced.SortInManager;
import com.system.dao.DaoSupport;
import com.system.util.PageData;

/**
 @Function
 @Author 于泓磊
 @Date   2017年10月31日
*/
@Service("sortinService")
public class SortInService implements SortInManager {
	
	@Resource(name = "daoSupport")
	private DaoSupport dao;


	/**
	 * 获得首页中美食分类列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getSortFoodList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SfoodInMapper.listAll", pd);
	}


	/**
	 * 为某家店铺进行评价
	 */
	@Override
	public void sFoodEvaAdd(PageData pd) throws Exception {
		  dao.save("SfoodInMapper.sFoodEvaAdd", pd);
		
	}


	/**
	 * 获得某家店铺的综合评价
	 */
	@Override
	public double sFoodEvaMean(PageData pd) throws Exception {
		return	(double) dao.findForObject("SfoodInMapper.sFoodEvaMean", pd);
	}


	/**
	 * 修改商铺的评价分数
	 */
	@Override
	public void sFoodUpdEva(PageData pd) throws Exception {
		dao.update("SfoodInMapper.sFoodUpdEva", pd);
	}


	/**
	 * 获取评价之后商铺的评价数量
	 */
	@Override
	public Integer sFoodEvaCount(PageData pd) throws Exception {
		return (Integer) dao.findForObject("SfoodInMapper.sFoodEvaCount", pd);
	}


	/**
	 * 获得某家店铺的具体服务
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> sFoodServ(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SfoodInMapper.sFoodServ", pd);
	}
	

	
	/**
	 * 获得首页中酒店分类列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getSortHotelList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("ShotelInMapper.listAll", pd);
	}


	/**
	 * 为某家酒店进行评价
	 */
	@Override
	public void sHotelEvaAdd(PageData pd) throws Exception {
		  dao.save("ShotelInMapper.sHotelEvaAdd", pd);
		
	}


	/**
	 * 获得某家酒店的综合评价
	 */
	@Override
	public double sHotelEvaMean(PageData pd) throws Exception {
		return	(double) dao.findForObject("ShotelInMapper.sHotelEvaMean", pd);
	}


	/**
	 * 修改酒店的评价分数
	 */
	@Override
	public void sHotelUpdEva(PageData pd) throws Exception {
		dao.update("ShotelInMapper.sHotelUpdEva", pd);
	}


	/**
	 * 获取评价之后酒店的评价数量
	 */
	@Override
	public Integer sHotelEvaCount(PageData pd) throws Exception {
		return (Integer) dao.findForObject("ShotelInMapper.sHotelEvaCount", pd);
	}


	/**
	 * 获取评价之后酒店的服务
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> sHotelServ(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("ShotelInMapper.sHotelServ", pd);
	}


	/**
	 * 获得所有酒店详情列表接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getHotelDetailList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("ShotelInMapper.hotelDetlist", pd);
	}
	
	
	/**
	 * 获得用户名下所有酒店订单列表	
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getAllHotelOrderList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("ShotelInMapper.hotelOrderlist", pd);
	}

	/**
	 * 生成酒店订单
	 */
	@Override
	public void addHotelOrder(PageData pd) throws Exception {
		dao.save("ShotelInMapper.addHotelOrder", pd);		
	}

	/**
	 * 修改酒店订单状态
	 */
	@Override
	public void updHotelOrderStatus(PageData pd) throws Exception {
		dao.update("ShotelInMapper.updHotelOrderStatus", pd);
	}


	/**
	 * 获得首页中ktv分类列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getSortKTVList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SKTVInMapper.listAll", pd);
	}


	/**
	 * 为某家KTV进行评价
	 */
	@Override
	public void sKTVEvaAdd(PageData pd) throws Exception {
		  dao.save("SKTVInMapper.sKTVEvaAdd", pd);
		
	}


	/**
	 * 获得某家KTV的综合评价
	 */
	@Override
	public double sKTVEvaMean(PageData pd) throws Exception {
		return	(double) dao.findForObject("SKTVInMapper.sKTVEvaMean", pd);
	}


	/**
	 * 修改KTV的评价分数
	 */
	@Override
	public void sKTVUpdEva(PageData pd) throws Exception {
		dao.update("SKTVInMapper.sKTVUpdEva", pd);
	}


	/**
	 * 获取评价之后KTV的评价数量
	 */
	@Override
	public Integer sKTVEvaCount(PageData pd) throws Exception {
		return (Integer) dao.findForObject("SKTVInMapper.sKTVEvaCount", pd);
	}


	/**
	 * 获取评价之后酒店的服务
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> sKTVServ(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SKTVInMapper.sKTVServ", pd);
	}
	
	
	/**
	 * 获得所有KTV详情列表接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getKTVDetailList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SKTVInMapper.ktvDetlist", pd);
	}
	
	
	/**
	 * 获得用户名下所有KTV订单列表	
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getAllKTVOrderList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SKTVInMapper.ktvOrderlist", pd);
	}

	/**
	 * 生成KTV订单
	 */
	@Override
	public void addKTVOrder(PageData pd) throws Exception {
		dao.save("SKTVInMapper.addKTVOrder", pd);		
	}

	/**
	 * 修改酒店订单状态
	 */
	@Override
	public void updKTVOrderStatus(PageData pd) throws Exception {
		dao.update("SKTVInMapper.updKTVOrderStatus", pd);
	}
	
	/**
	 * 生成用户订单中间信息
	 */
	@Override
	public void addUserOrder(PageData pd) throws Exception {
		dao.save("SKTVInMapper.addUserOrder", pd);		
	}


	/**
	 * 酒店详情综合接口
	 */
	@Override
	public PageData hotelSyn(PageData pd) throws Exception {
		return (PageData) dao.findForObject("ShotelInMapper.hotelSyn", pd);
	}


	/**
	 * 美食详情综合接口
	 */
	@Override
	public PageData foodSyn(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SfoodInMapper.foodSyn", pd);
	}

	/**
	 * KTV详情综合接口
	 */
	@Override
	public PageData ktvSyn(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SKTVInMapper.ktvSyn", pd);
	}
	
	/**
	 * 酒吧详情综合接口
	 */
	@Override
	public PageData barSyn(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SortBarInMapper.barSyn", pd);
	}
	
	/**
	 * 获取用户和美食店铺的地理坐标 
	 */
	@Override
	public PageData foodDistance(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SfoodInMapper.userfooddist", pd);
	}
	
	/**
	 * 获取用户和酒店的地理坐标 
	 */
	@Override
	public PageData hotelDistance(PageData pd) throws Exception {
		return (PageData) dao.findForObject("ShotelInMapper.userhoteldist", pd);
	}


	/**
	 * 获取用户和KTV的地理坐标 
	 */
	@Override
	public PageData ktvDistance(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SKTVInMapper.userktvdist", pd);
	}


	/**
	 * 获得首页中酒吧分类列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getSortBarList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SortBarInMapper.listAll", pd);
	}


	/**
	 * 获得某家酒吧的具体服务接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> sBarServ(PageData pd) throws Exception {
		return (List<PageData>) dao.findForObject("SortBarInMapper.sBarServ", pd);
	}



	/**
	 * 获取用户和酒吧的地理坐标
	 */
	@Override
	public PageData barDistance(PageData pd) throws Exception {
		return (PageData) dao.findForObject("SortBarInMapper.userbardist", pd);
	}

    
	/**
	 * 添加酒吧用户评价
	 */
	@Override
	public void addBarEva(PageData pd) throws Exception {
		dao.save("SortBarInMapper.sBarEvaAdd", pd);
	}



	/**
	 * 获得某家酒吧的综合评价
	 */
	@Override
	public Double getBarEvaMean(PageData pd) throws Exception {
		return	(Double) dao.findForObject("SortBarInMapper.sBarEvaMean", pd);
	}


	/**
	 * 修改酒吧的评价分数
	 * 
	 */
	@Override
	public void updBarEva(PageData pd) throws Exception {
		dao.update("SortBarInMapper.sBarUpdEva", pd);
	}
	
	/**
	 * 获得某家酒店的评价列表
	 */
	@SuppressWarnings("unchecked")
	public List<PageData> hotelEvaList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("ShotelInMapper.hotelEvaList", pd);
	}

    /**
     * 获得某家KTV的评价列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> ktvEvaList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SKTVInMapper.ktvEvaList", pd);
	}

	/**
	 * 获得酒吧评价总数
	 */
	@Override
	public Integer getBarEvaCount(PageData pd) throws Exception {
		return (Integer)dao.findForObject("SortBarInMapper.sBarEvaCount", pd);
	}
	
	/*	
     * 获得某家美食的评价列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> foodEvaList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SfoodInMapper.foodEvaList", pd);
	}

	/**
     * 获得某家酒吧的评价列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> barEvaList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SortBarInMapper.barEvaList", pd);
	}


	/**
	 * 获取酒吧详情列表接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getBarDetailList(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortBarInMapper.BarDetlist", pd);
	}


	/**
	 * 获得用户名下所有酒吧订单列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getAllBarOrderList(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortBarInMapper.BarOrderlist", pd);
	}


	/**
	 * 生成酒吧订单(未支付)
	 */
	@Override
	public void addBarOrder(PageData pd) throws Exception {
		dao.save("SortBarInMapper.addBarOrder", pd);
	}


	/**
	 * 修改酒吧订单状态
	 */
	@Override
	public void updBarOrderStatus(PageData pd) throws Exception {
		dao.update("SortBarInMapper.updBarOrderStatus", pd);
	}


	/**
	 * 生成用酒吧户订单中间信息
	 */
	@Override
	public void addUserBarOrder(PageData pd) throws Exception {
		dao.save("SortBarInMapper.addUserOrder", pd);
	}
	
    /**
     * 根据用户ID获取用户昵称
     */
	public PageData getUserNickName(PageData pd) throws Exception {
		return (PageData) dao.findForObject("ShotelInMapper.getUserNickName", pd);
	}


	/**
     * 随机产生酒店列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getHotelListByRand(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("ShotelInMapper.getHotelByRand", pd);
	}


	/**
     * 随机产生KTV列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getKTVListByRand(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SKTVInMapper.getKTVByRand", pd);
	}


	/**
     * 随机产生酒吧列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getBarListByRand(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortBarInMapper.getBarByRand", pd);
	}


	/**
     * 随机产生美食店铺列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getFoodListByRand(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SfoodInMapper.getFoodByRand", pd);
	}


	/**
     * 根据酒吧评价分数，价格升序或者降序排序
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getBarListBySequence(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortBarInMapper.getBarListBySequence", pd);
	}


	/**
     * 根据KTV评价分数，价格升序或者降序排序
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getKTVListBySequence(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SKTVInMapper.getKTVListBySequence", pd);
	}


	/**
     * 根据酒店评价分数，价格升序或者降序排序
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getHotelListBySequence(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("ShotelInMapper.getHotelListBySequence", pd);
	}


	/**
     * 根据美食评价分数，价格升序或者降序排序
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getFoodListBySequence(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SfoodInMapper.getFoodListBySequence", pd);
	}


	/**
     * 获得美食套餐页列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getFoodDetlist(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SfoodInMapper.getFoodDetlist", pd);
	}


	/**
     * 获得用户名下所有美食订单列表
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getAllFoodOrderList(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SfoodInMapper.FoodOrderlist", pd);
	}


	/**
     * 生成美食订单(未支付)
     */
	@Override
	public void addFoodOrder(PageData pd) throws Exception {
		dao.save("SfoodInMapper.addFoodOrder", pd);
	}


	/**
     * 修改美食订单状态
     */
	@Override
	public void updFoodOrderStatus(PageData pd) throws Exception {
		dao.update("SfoodInMapper.updFoodOrderStatus", pd);
	}


	/**
     *  查询所有品牌
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getBrandList(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortInMapper.getBrandList", pd);
	}


	/**
     * 查询所有类型
     */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getStyleList(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("SortInMapper.getStyleList", pd);
	}


	/**
	 * 修改美食参数
	 */
	@Override
	public void updFood(PageData pd) throws Exception {
		dao.update("SfoodInMapper.edit", pd);
	}


	/**
	 * 修改酒店参数
	 */
	@Override
	public void updHotel(PageData pd) throws Exception {
		dao.update("ShotelInMapper.edit", pd);
	}
	

	/**
	 * 新增店铺所提供的服务
	 */
	@Override
	public void saveShopServ(PageData pd) throws Exception {
		dao.save("SfoodInMapper.saveShopServ", pd);
	}


	/**
	 * 修改店铺所提供的服务
	 */
	@Override
	public void updShopServ(PageData pd) throws Exception {
		dao.update("SfoodInMapper.updShopServ", pd);
	}


	/**
	 * 新增酒店详情
	 */
	@Override
	public void addHotelDetail(PageData pd) throws Exception {
		dao.save("ShotelInMapper.addHotelDetail", pd);
	}


	/**
	 * 修改酒店详情
	 */
	@Override
	public void updHotelDetail(PageData pd) throws Exception {
		dao.update("ShotelInMapper.updHotelDetail", pd);
	}


	/**
	 * 删除酒店详情
	 */
	@Override
	public void delHotelDetail(PageData pd) throws Exception {
		dao.update("ShotelInMapper.delHotelDetail", pd);
	}
	
	
	/**
	 * 新增美食详情
	 */
	@Override
	public void addFoodDetail(PageData pd) throws Exception {
		dao.save("SfoodInMapper.addFoodDetail", pd);
	}


	/**
	 * 修改美食详情
	 */
	@Override
	public void updFoodDetail(PageData pd) throws Exception {
		dao.update("SfoodInMapper.updFoodDetail", pd);
	}


	/**
	 * 删除美食详情
	 */
	@Override
	public void delFoodDetail(PageData pd) throws Exception {
		dao.update("SfoodInMapper.delFoodDetail", pd);
	}
	
	
	/**
	 * 新增KTV详情
	 */
	@Override
	public void addKTVDetail(PageData pd) throws Exception {
		dao.save("SKTVInMapper.addKTVDetail", pd);
	}


	/**
	 * 修改KTV详情
	 */
	@Override
	public void updKTVDetail(PageData pd) throws Exception {
		dao.update("SKTVInMapper.updKTVDetail", pd);
	}


	/**
	 * 删除KTV详情
	 */
	@Override
	public void delKTVDetail(PageData pd) throws Exception {
		dao.update("SKTVInMapper.delKTVDetail", pd);
	}
	
	
	/**
	 * 新增酒吧详情
	 */
	@Override
	public void addBarDetail(PageData pd) throws Exception {
		dao.save("SortBarInMapper.addBarDetail", pd);
	}


	/**
	 * 修改酒吧详情
	 */
	@Override
	public void updBarDetail(PageData pd) throws Exception {
		dao.update("SortBarInMapper.updBarDetail", pd);
	}


	/**
	 * 删除酒吧详情
	 */
	@Override
	public void delBaretail(PageData pd) throws Exception {
		dao.update("SortBarInMapper.delBarDetail", pd);
	}


	/**
	 * 根据id获取酒店详情
	 */
	@Override
	public PageData getHotelDetail(PageData pd) throws Exception {
		return (PageData)dao.findForObject("ShotelInMapper.getHotelDetail", pd);
	}


	/**
	 * 根据id获取美食详情
	 */
	@Override
	public PageData getFoodDetail(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SfoodInMapper.getFoodDetail", pd);
	}


	/**
	 * 根据id获取KTV详情
	 */
	@Override
	public PageData getKTVDetail(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SKTVInMapper.getKTVDetail", pd);
	}


	/**
	 * 根据id获取酒吧详情
	 */
	@Override
	public PageData getBarDetail(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SortBarInMapper.getBarDetail", pd);
	}


	/**
	 * 获取美食商家id
	 */
	@Override
	public PageData getFoodBusinessId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SfoodInMapper.getFoodBusinessId", pd);
	}


	/**
	 * 获取酒店商家id
	 */
	@Override
	public PageData getHotelBusinessId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("ShotelInMapper.getHotelBusinessId", pd);
	}


	/**
	 * 获取KTV商家id
	 */
	@Override
	public PageData getKTVBusinessId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SKTVInMapper.getKTVBusinessId", pd);
	}


	/**
	 * 获取酒吧商家id
	 */
	@Override
	public PageData getBarBusinessId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SortBarInMapper.getBarBusinessId", pd);
	}


	/**
	 * 获取尊购商家id
	 */
	@Override
	public PageData getBusinessId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("BusinessInMapper.getBusinessId", pd);
	}


	/**
	 * 后台酒吧，KTV，美食，酒店添加品牌或分类
	 */
	@Override
	public void addBrandOrCate(PageData pd) throws Exception {
		dao.save("SortInMapper.addBrandOrCate", pd);
	}


	/**
	 * 后台酒吧，KTV，美食，酒店修改品牌或分类
	 */
	@Override
	public void updBrandOrCate(PageData pd) throws Exception {
		dao.save("SortInMapper.updBrandOrCate", pd);
	}
	
	/**
	 * 后台酒吧，KTV，美食，酒店根据id获取品牌或分类
	 */
	@Override
	public PageData findById(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SortInMapper.findById", pd);
	}


	/**
	 * 后台获取美食店铺信息
	 */
	@Override
	public PageData getFoodBusiInfo(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SfoodInMapper.getFoodBusiInfo", pd);
	}


	/**
	 * 后台获取酒吧店铺信息
	 */
	@Override
	public PageData getBarBusiInfo(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SortBarInMapper.getBarBusiInfo", pd);
	}


	/**
	 * 后台获取酒店店铺信息
	 */
	@Override
	public PageData getHotelBusiInfo(PageData pd) throws Exception {
		return (PageData)dao.findForObject("ShotelInMapper.getHotelBusiInfo", pd);
	}


	/**
	 * 后台获取KTV店铺信息
	 */
	@Override
	public PageData getKTVBusiInfo(PageData pd) throws Exception {
		return (PageData)dao.findForObject("SKTVInMapper.getKTVBusiInfo", pd);
	}



}
